﻿using IllustratedCsharp7_ch8;
using System;
using System.Collections.Generic;
using System.Text;

namespace IllustratedCsharp7_ch8_ExtendMyData
{


    public static class ExtendMyData
    {

        /// <summary>
        /// 在另一个使用MyData类中编写Average方法
        /// 调用方法:ExtendMyData.Average(md)
        /// </summary>
        /// <param name="md"></param>
        /// <returns></returns>
        public static double Average(MyData md)
        {
            return md.Sum() / 3;    //使用MyData的实例
        }

        /// <summary>
        /// 在参数声明中的类型名前加关键字this。
        /// 使用实例调用形式       
        /// 声明扩展方法的类必须声明为static
        /// 扩展方法本身必须声明为static
        /// 扩展方法必须包含关键字this作为它的第一个参数类型，并在后面跟着它扩展的类的名称。
        /// </summary>
        /// <param name="md"></param>
        /// <returns></returns>
        //public static double Average(this MyData md)
        //{
        //    return md.Sum() / 3;
        //}
    }
}
